Increasingly, machines (i.e., computers) are used to provide machine vision or object recognition. Object recognition provides users with a variety of beneficial tools.
In some instances, object recognition relies upon algorithms that include a neural network. That is, a device may recognize that an object is within an input image by using a neural network. Generally, the neural network has been trained to recognize objects through prior use of training images. This object recognition process can become more discerning if more training images are used for the object.
Generally, neural networks include systems of interconnected “neurons.” The neural networks compute values from inputs and are capable of machine learning as well as pattern recognition as a result of their adaptive nature.
Neural networks for image recognition require data processes for learning and for recognition that are memory and processing intensive, and therefore computationally expensive. Indeed, the values of the weights require memory space for storage and for processing during computational processes.
As might be expected, increasing the size of a training data set improves the performance of a neural network. Unfortunately, in a mobile device such as a smartphone, memory and processing capabilities are comparatively limited. Accordingly, the increasingly pervasive use of mobile devices generally has not benefitted from image recognition technology.
What are needed are methods and apparatus to provide for improved performance of a neural network on a computing device that has limited resources.